﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using NGI_Entidades;
using NGI_Mensaje;
using NGI_Logica;
using NGI_Enumerador;

namespace NGI_Sistema.Forms
{
    public partial class Padre : Form
    {

        #region Constructores
        public Padre()
        {
            InitializeComponent();

            /*InformacionUsuarioLogueado frmInfUsuario = new InformacionUsuarioLogueado();
            frmInfUsuario.MdiParent = this;
            frmInfUsuario.Show();
            Program.FormulariosAbiertos.Add(frmInfUsuario);*/
        }
        #endregion Constructores


        #region Eventos
        private void cerrarSesiónToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Sesiones.BorrarCredenciales();
            this.CerrarSesion();
        }

        private void usuariosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ABMUsuarios frmUsuarios = new ABMUsuarios();
            this.AbrirHijo(frmUsuarios);
        }

        private void serviciosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ABMProductos frmProductos = new ABMProductos();
            this.AbrirHijo(frmProductos);
        }

        private void administradorToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ABMClientes frmClientes = new ABMClientes();
            this.AbrirHijo(frmClientes);
        }

        private void administradorToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            ABMProveedores frmProveedores = new ABMProveedores();
            this.AbrirHijo(frmProveedores);
        }

        private void cuentaCorrienteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            CuentaCorriente frmCuentaCorriente = new CuentaCorriente(TiposDatos.Cliente, this);
            this.AbrirHijo(frmCuentaCorriente);
        }

        private void cuentaCorrienteToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            CuentaCorriente frmCuentaCorriente = new CuentaCorriente(TiposDatos.Proveedor, this);
            this.AbrirHijo(frmCuentaCorriente);
        }

        private void aToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FacturaA frmFactura = new FacturaA();
            this.AbrirHijo(frmFactura);
        }

        private void bToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FacturaB frmFactura = new FacturaB();
            this.AbrirHijo(frmFactura);
        }

        private void nuevoPagoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            NuevoPago frmNuevoPago = new NuevoPago();
            this.AbrirHijo(frmNuevoPago);
        }
        #endregion Eventos


        #region Funciones Públicas
        public void AbrirAdministrador(TiposDatos TipoDato, Int32 Id)
        {
            if (TipoDato == TiposDatos.Cliente)
            {
                ABMClientes frmProveedores = new ABMClientes(Id);
                this.AbrirHijo(frmProveedores);
            }
            else
            {
                ABMProveedores frmProveedores = new ABMProveedores(Id);
                this.AbrirHijo(frmProveedores);
            }
        }
        #endregion Funciones Públicas


        #region Funciones Privadas
        private void CerrarSesion()
        {
            Program.SesionActiva = null;
            Login frmLogin = new Login();
            frmLogin.Show();
            Program.FormulariosAbiertos.Remove(frmLogin);
            this.Dispose();
        }

        private void AbrirHijo(Form FormularioAAbrir)
        {
            FormularioAAbrir.MdiParent = this;
            FormularioAAbrir.Show();
            Program.FormulariosAbiertos.Add(FormularioAAbrir);
        }
        #endregion Funciones Privadas

    }
}
